package com.gitee.feizns.webtemplate.commons.session;

/**
 * @author feizns
 * @since 2019/4/10
 */
public interface Session {

    /**
     * 会话创建时间
     * @return
     */
    long getCreationTime();

    /**
     * 会话的key
     * @return
     */
    String getToken();

    /**
     * 最后访问的时间
     * @return
     */
    long getLastAccessedTime();

    /**
     * 获取剩余有效时间
     * @return
     */
    long getExtraTime();

    /**
     * 刷新 session 最后访问时间
     */
    void refresh();

    /**
     * 设置属性
     * @param name
     * @param obj
     * @return
     */
    Object setAttribute(String name, Object obj);

    /**
     * 获取会话中的属性
     * @param name
     * @return
     */
    Object getAttribute(String name);

    /**
     * 销毁会话
     */
    void invalidate();

}

